﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sped.Sped
{
    public static class FormatosExt
    {
        public static string FormatoDataSped(this DateTime Data)
        {
            return Data == null ? "" : Data.ToString("ddMMyyyy");
        }

        public static string FormatoValorSped(this double Valor, int CasasDecimais)
        {
            var ValorRetorno = string.Empty;
            switch (CasasDecimais)
            {
                case 0: ValorRetorno = String.Format("{0:0}", Valor).Trim(); break;
                case 1: ValorRetorno = String.Format("{0:0.0}", Valor).Trim(); break;
                case 2: ValorRetorno = String.Format("{0:0.00}", Valor).Trim(); break;
                case 3: ValorRetorno = String.Format("{0:0.000}", Valor).Trim(); break;
                case 4: ValorRetorno = String.Format("{0:0.0000}", Valor).Trim(); break;
				case 5: ValorRetorno = String.Format("{0:0.00000}", Valor).Trim(); break;
            }

            return ValorRetorno;
        }

        public static string removeFormatacao(this string texto)
        {
            if (string.IsNullOrEmpty(texto))
                texto = string.Empty;
            string txt = "";

            txt = texto.Replace(".", "");
            txt = txt.Replace("-", "");
            txt = txt.Replace("/", "");
            txt = txt.Replace("(", "");
            txt = txt.Replace(")", "");
            txt = txt.Replace("º", "");
            txt = txt.Replace("ª", "");
            txt = txt.Replace(",", "");

            return txt;
        }

        public static string TirarAcento(this string palavra)
        {
            if (string.IsNullOrEmpty(palavra))
                palavra = string.Empty;
            string palavraSemAcento = "";
            string caracterComAcento = "áàãâäéèêëíìîïóòõôöúùûüçÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÖÔÚÙÛÜÇ";
            string caracterSemAcento = "aaaaaeeeeiiiiooooouuuucAAAAAEEEEIIIIOOOOOUUUUC";

            for (int i = 0; i < palavra.Length; i++)
            {
                if (caracterComAcento.IndexOf(Convert.ToChar(palavra.Substring(i, 1))) >= 0)
                {
                    int car = caracterComAcento.IndexOf(Convert.ToChar(palavra.Substring(i, 1)));
                    palavraSemAcento += caracterSemAcento.Substring(car, 1);
                }
                else
                {
                    palavraSemAcento += palavra.Substring(i, 1);
                }
            }

            return palavraSemAcento;
        }
    }
}
